﻿using UnityEngine;
using Lightbug.CharacterControllerPro.Core;
using Lightbug.Utilities;

namespace Lightbug.CharacterControllerPro.Demo
{

    public class JumpPad : CharacterDetector
    {
        public bool useLocalSpace = true;
        public Vector3 direction = Vector3.up;
        public float jumpPadVelocity = 10f;

        protected override void ProcessEnterAction(CharacterActor characterActor)
        {
            if (characterActor.GroundObject != gameObject)
                return;

            characterActor.ForceNotGrounded();

            Vector3 direction = useLocalSpace ? transform.TransformDirection(this.direction) : this.direction;
            characterActor.Velocity += direction * jumpPadVelocity;
        }

        protected override void ProcessStayAction(CharacterActor characterActor)
        {
            ProcessEnterAction(characterActor);
        }

        private void OnDrawGizmos()
        {
            Vector3 direction = useLocalSpace ? transform.TransformDirection(this.direction) : this.direction;
            //Gizmos.DrawRay(transform.position, direction * 2f);
            CustomUtilities.DrawArrowGizmo(transform.position, transform.position + direction * 2f, Color.red);
        }

    }

}
